package com.css.fxfzfxqh.modules.vulnerabilityData.repository;

import com.css.fxfzfxqh.modules.vulnerabilityData.entity.*;
import com.css.fxfzfxqh.modules.vulnerabilityData.vo.QueryParamsVo;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

public interface VulnerabilityRepository {
    boolean saveDxPipeNetwork(DxPipeNetworkEntity dxPipeNetworkEntity);

    boolean saveLifelineAttachmentRecord(LifelineAttachmentRecordEntity lifelineAttachmentRecord);

    boolean saveWaterWork(WaterWorksEntity waterWorksEntity);

    boolean savePool(PoolEntity poolEntity);

    boolean saveAirReceiver(AirReceiverEntity airReceiverEntity);

    boolean saveBridgePoint(BridgeEntity bridgeEntity);

    boolean saveBridgeLine(BridgeEntity bridgeEntity);

    boolean saveRoad(RoadEntity roadEntity);

    boolean saveTransformerSubstation(TransformerSubstationEntity transformerSubstationEntity);

    boolean saveOverheadLine(OverheadLineEntity overheadLineEntity);

    boolean saveCableRoute(CableRouteEntity cableRouteEntity);

    boolean saveImportantPowerhouse(ImportantPowerhouseEntity importantPowerhouseEntity);

    boolean saveCommIndoorEquipment(CommIndoorEquipmentEntity commIndoorEquipment);

    boolean saveTvTower(TvTowerEntity tvTowerEntity);

    Map<String, Object> page(QueryParamsVo queryParamsVo, int curPage, int pageSize);

    Map findById(String id, String type);

    Boolean update(Map<String, Object> map);

    boolean delete(String id, String type);

    boolean saveMajorProject(MajorProjectEntity majorProjectEntity);

    int getPipeNetworkDataByProvince(String province);

    int getWaterworksDataByProvince(String province);

    int getPoolDataByProvince(String province);

    int getAirReceiverDataByProvince(String province);

    int getBridgeDataByProvince(String province);

    int getRoadDataByProvince(String province);

    int getTransformerSubstationDataByProvince(String province);

    int getOverheadLineDataByProvince(String province);

    int getCableRouteDataByProvince(String province);

    int getImportantPowerhouseDataByProvince(String province);

    int getCommIndoorEquipmentDataByProvince(String province);

    int getTvTowerDataByProvince(String province);


    Map bridgeFindById(String id, String flag);

    boolean bridgeDelete(String id, String flag);

    List<String> getVulnerabilityByCondition(BigDecimal longitude, BigDecimal latitude, String pgcd);

    void batchDelete(List<String> repeatIdList);

    void batchSave(List<BuildingIndividualVulnerability> list);

    Map<String, Object> getPage(int curPage, int pageSize);

    String getAreaCodeByLonAndLat(String lon, String lat);

    List<BuildingIndividualVulnerability> matrixFindByCode(String code);

    Boolean matrixUpdate(List<BuildingIndividualVulnerability> list);
}
